In the use of integrated circuit devices (ICs) it is often desirable that the devices be programmable so that their operation may be tailored to fit particular applications. Furthermore, it is desirable that a menu of available features be provided from which an end user of an IC device can choose to best suit his particular application. For example, in a programmable logic device (PLD), available options might include the configuration of one or more pins as input or output pins, the configuration of one or more output macrocells for registered or combinatorial output or buried feedback, the setting of various other logic connections, and the setting of an initial device state. The menu of available options will, of course, be different for each kind of device.
Selection of items from a menu, hereafter referred to as "configuring the architecture" of the device, can be implemented using one of several methods than are known in the art. Three commonly used methods are (1) to provide mask options, (2) to provide "mode" or "control" registers (storage elements) loaded from external circuitry, where the registers' outputs act as architecture controls and (3) to use EPROM or EEPROM transistor elements as described by Hartman et al. in U.S. Pat. No. 4,713,792. However, each of these methods has associated disadvantages.
The first method referred to, i.e., wherein masks used to manufacture the IC are programmed, has the drawback that the configuration of the IC must be implemented during the manufacturing process. Typically, such programming is accomplished during the metal masking step in the production of the IC. The disadvantage of this approach is that configuration selections must be made prior to completion of the manufacturing operation, thereby causing long lead times and many production and inventory problems associated with manufacturing, testing and inventorying the custom IC devices. In addition, if changes are later required, all previous inventory that has matured beyond the point in manufacturing where customization takes place will be obsolete.
The second method, i.e., the use of mode registers, solves the lead time, manufacturing and inventory problems in that the IC parts can be configured by the user after manufacture is completed. In other words, if changes are required, the IC device can be reprogrammed by writing new values into the mode register. The disadvantage of this approach is that register data is lost whenever power is removed from the system. As a consequence, applications of devices having such features are limited.
The third method, i.e., the use of EPROM and EEPROM transistor elements, has several drawbacks. The sense circuit that is needed to read the programmed or unprogrammed state of the EPROMs or EEPROMs dissipates power constantly. The sense and programming circuitry consists of many transistors and is therefore relatively expensive to implement. Third, it is time consuming, and thus expensive, for a manufacturer to test a device before delivery, because a complete test requires that the various possible pathways be enabled by the EPROMs or EEPROMs and tested. The EPROMs or EEPROMs must then be erased and reprogrammed to test other parts of the circuitry.
It is, accordingly, an object of the present invention to provide programmable configuration control circuitry for incorporation in PLDs and other IC devices which permits a user to custom-tailor the circuit architecture of an IC device, while allowing the various subcircuits of the IC device to be tested without having to repeatedly reprogram the device.
It is another object of the invention to provide PLDs having such programmable control circuitry for configuring a PLD's macrocells and the like, while facilitating complete testing.